package com.searchengine.repository;

import com.searchengine.entity.PaymentRecord;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

import java.util.Optional;
import java.util.List;

/**
 * 付费记录数据访问接口
 */
@Repository
public interface PaymentRecordRepository extends JpaRepository<PaymentRecord, Long> {

    /**
     * 查询用户的所有付费记录
     * @param userId 用户ID
     * @return 付费记录列表
     */
    List<PaymentRecord> findByUserId(Long userId);

    /**
     * 根据订单号查询付费记录
     * @param orderNo 订单号
     * @return 付费记录对象
     */
    Optional<PaymentRecord> findByOrderNo(String orderNo);

    /**
     * 根据交易号查询付费记录
     * @param tradeNo 交易号
     * @return 付费记录对象
     */
    Optional<PaymentRecord> findByTradeNo(String tradeNo);

    /**
     * 查询用户的某个关键词的付费记录
     * @param userId 用户ID
     * @param keywordId 关键词权重ID
     * @return 付费记录列表
     */
    List<PaymentRecord> findByUserIdAndKeywordWeightId(Long userId, Long keywordId);
}